﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ejercicio_2___Estacionamiento
{

    class Playa
    {
        private List<RegistroEstacionamiento> Autos = new List<RegistroEstacionamiento>();

        private int capacidadAutos;

        public int CapacidadAutos
        {
            get { return capacidadAutos; }
            set { capacidadAutos = value; }
        }

        private double precioAuto;

        public double PrecioAuto
        {
            get { return precioAuto; }
            set { precioAuto = value; }
        }

        private int totalAutos = 0;

        public int TotalAutos
        {
            get { return totalAutos; }
            set { totalAutos = value; }
        }

        private double totalRecaudacion = 0;

        public double TotalRecaudacion
        {
            get { return totalRecaudacion; }
            set { totalRecaudacion = value; }
        }

        public Playa(int nAutos, double pAuto)
        {
            this.CapacidadAutos = nAutos;
            this.PrecioAuto = pAuto;
        }

        public bool RegistrarEgreso(Vehiculo unidad, DateTime horaSalida, out double monto)
        {
            for (int i = 0; i < Autos.Count; i++)
            {
                if (Autos[i].Unidad.Matricula.CompareTo(unidad.Matricula) == 0)
                {
                    TimeSpan horas = horaSalida.Subtract(Autos[i].HoraEntrada);
                    monto = horas.TotalHours * PrecioAuto;
                    TotalRecaudacion += monto;
                    Autos.Remove(Autos[i]);
                    return true;
                }
            }
            monto = 0;
            return false;
        }

        public bool RegistrarIngreso(Vehiculo unidad, DateTime horaEntrada)
        {
            if (TotalAutos < CapacidadAutos)
            {
                RegistroEstacionamiento R = new RegistroEstacionamiento(horaEntrada, unidad);
                Autos.Add(R);
                TotalAutos++;
                return true;
            }
            else
            {
                return false;
            }
        }
    }

}
